﻿using System;
using System.Windows.Forms;
using FBWMS.Properties;

namespace FBWMS
{
    public partial class F_COM_Encrypt : Form
    {
        ////////////////////////////////////////////////////////////////////////////
        //
        //初期処理
        //
        ////////////////////////////////////////////////////////////////////////////
        public F_COM_Encrypt()
        {
            try
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, Resources.F_COM_Encrypt, "F_COM_Encrypt");

                //初期処理
                InitializeComponent();

                //ToolTipの設定
                G_CommonDefine.G_tt_ToolTip.RemoveAll();
                G_CommonDefine.G_tt_ToolTip.SetToolTip(this.btn_Clear, "F11");

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, Resources.FCOMEncrypt初期処理終了, "F_COM_Encrypt");
            }
            catch (Exception err)
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, Resources.FCOMEncrypt初期処理エラー + err.Message, "F_COM_Encrypt");

                //エラーメッセージ表示
                MessageBox.Show(Resources.FCOMEncrypt初期処理エラー + err.Message, Resources.エラー, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        #region イベントハンドラ ***********************************************************

        ////////////////////////////////////////////////////////////////////////////
        //
        //暗号化ボタンクリック時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Encrypt_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(this.txt_Encrypt_Before.Text))
            {
                MessageBox.Show(Resources.Btn_Encrypt_Click, Resources.エラー, MessageBoxButtons.OK, MessageBoxIcon.Error);

                this.txt_Encrypt_Before.Focus();

                return;
            }            

            this.txt_Encrypt_After.Text = G_CommonClassEncrypt.G_Encrypt_EncryptString(this.txt_Encrypt_Before.Text, G_CommonDefine.G_EncryptKey);
        }

        ////////////////////////////////////////////////////////////////////////////
        //
        //複合化ボタンクリック時処理
        //
        ////////////////////////////////////////////////////////////////////////////        
        private void btn_Decrypt_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(this.txt_Decrypt_Before.Text))
            {
                MessageBox.Show(Resources.Btn_Decrypt_Click, Resources.エラー, MessageBoxButtons.OK, MessageBoxIcon.Error);

                this.txt_Decrypt_Before.Focus();

                return;
            }

            this.txt_Decrypt_After.Text = G_CommonClassEncrypt.G_Encrypt_DecryptString(this.txt_Decrypt_Before.Text, G_CommonDefine.G_EncryptKey);
        }      

        ////////////////////////////////////////////////////////////////////////////
        //
        //クリアボタンクリック時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Clear_Click(object sender, EventArgs e)
        {
            this.txt_Encrypt_Before.Text = string.Empty;
            this.txt_Encrypt_After.Text = string.Empty;
            this.txt_Decrypt_After.Text = string.Empty;
            this.txt_Decrypt_Before.Text = string.Empty;

            this.txt_Encrypt_Before.Focus();
        }

        #endregion *************************************************************************

        #region フォーム共通処理 ***********************************************************

        ////////////////////////////////////////////////////////////////////////////
        //
        //ショートカットキー処理
        //
        ////////////////////////////////////////////////////////////////////////////
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (this.cc_ShortcutKeyHelper1.PerformClickByKeys(keyData))
            {
                return true;
            }

            return base.ProcessCmdKey(ref msg, keyData);
        }

        ////////////////////////////////////////////////////////////////////////////
        //フォームKeyDown時処理
        //(エンターを押した際に次のコントロールに移動する。)
        //(フォームの『KeyPreview』を『true』にすること)
        ////////////////////////////////////////////////////////////////////////////
        private void F_COM_Encrypt_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (!e.Control)
                {
                    this.SelectNextControl(this.ActiveControl, !e.Shift, true, true, true);
                }
            }
        }                      

        #endregion *************************************************************************
    }
}